Portable data storage and editing device

ABSTRACT

Method and apparatus are described for outputting data from a device, such as a portable keyboard, directly to a keyboard interface  40  of a destination computer  42 . The device may be detached from the computer and operate remotely therefrom, in an “active mode” wherein keystroke data is stored in internal memory thereof, for subsequent transfer to the destination computer. Alternatively, the device may be attached to the computer and function in a “bypass mode” (or in a keyboard emulation routine of the active mode) as a standard input keyboard therefor. The destination computer  42  may be a personal computer or a terminal of a mainframe computer. The internal circuitry of the device includes a programmable processor  28 , a program memory  30 , a working memory  32 , an input switch device  34 , a display  36  and an output interface  38 . A bypass switch device  24  permits the device to operate in the bypass mode. A resident program stored in program memory  30  controls input, editing, translation and output of data. The processor  28  performs all control and data processing functions. The working memory  32  provides scratchpad and data memory required to execute the program steps, and storage for keystroke files input in the transfer mode. The device may record a sequence of keystrokes for subsequent output to the destination computer in the event that faulty operation of the destination computer prevents reception and/or storage of the same, thus providing fault-tolerant data transfer. The output interface  38  communicates data and provides handshaking to the keyboard interface  40  of the destination computer  42 . The questions raised in reexamination request No. 09/004,214 filed Apr. 10, 1996, have been considered and the results thereof are reflected in this reissue patent which constitutes the reexamination certificate required by 35 U.S.C. 307 as provided in 37 CFR 1.570(e).

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to methods and apparatus of data storageand transfer, and more particularly to devices and processes for inputof data from remote locations and for later transfer of the data to adestination computer.

There is a long felt need in the business, industrial and scientificcommunities for a method and apparatus providing an ability to recordthoughts and data in remote locations. Recent electronic advances havemade possible a wide variety of devices which attempt to meet this need.Portable computers, laptop computers and portable dedicated data loggingdevices are now commonly found in all areas of our society. Inputmethods range from keyboard and bar code scanner entry to voice andoptical character recognition systems.

An important aspect of these devices is their ability to transfer theinformation stored therein to other devices. These other devices, suchas desktop computers and mainframe computers, for example, often have agreater ability of analyzing, displaying, or disseminating data, whencompared to the remote devices. Publishing houses, for example, haveextremely powerful text editing and formatting computers withcapabilities far beyond those of any portable computer. Data transferhas, accordingly, become extremely important and has given rise to anentire industry of consultants, designers and manufacturers.

2. Prior Art

Many techniques have been devised to effect the transfer of stored databetween devices. Serial and parallel transfer protocols, diskettes andother removable media, advanced communications software and complexcommunications devices make data transfer possible. In fewcircumstances, however, is data transfer both truly convenient andeconomical.

Laptop computers are a recent and effective approach to solving theproblem of remote entry of textual and numerical data. These computersare light in weight and similar in function to standard officecomputers, and generally possess floppy disk drives and a wide varietyof communications ports as standard features.

Data transfer between such a laptop computer and a personal computer issometimes attempted by copying data onto a floppy diskette of the laptopcomputer and moving the diskette to the desktop computer. Often,however, the diskette drives of laptop and desktop computers are notcompatible due to differences in the data format or type of disks. Thus,data transfer via floppy diskette does not provide a truly effectivemethod of data transfer from a remote data entry device to a computerhaving a data storage bank.

Similarly, direct transfer of data via cables requires thatcommunications ports of the correct type are present on both the laptopand desktop computers. Cable transfer also requires installation ofcommunications software on both computers, and a cable to connect theports of both computers with the correct pin-to-pin configuration. Useof additional cable devices such as gender changes and pinout changersis also often required to match these ports. Existing communicationssoftware often changes the format of a data file and delivers it to aremote subdirectory. To use the transferred file, it must first becopied to the data directory for the application and erased from theremote subdirectory. The data must then be imported into theapplications program. In the case of spreadsheets and databasemanagement programs, the data must also be parsed.

Cable transfer requires access to the expansion slots of the destinationcomputer. These expansion slots are generally located on the back of thedestination computer. Such an arrangement often requires considerablemanual dexterity, such as reaching or lifting, to gain access to theport. This is a danger to expensive equipment and inconvenient forvaluable personnel. Thus, direct or cable data transfer is inefficient,time consumptive, and frequently difficult to achieve.

In summary, existing techniques for data transfer between laptopcomputers and desktop computers require the user to provide compatiblediskette drives, communications software, file translation software,cabling or other devices. These techniques also require that the userhave a considerable understanding of the directory and file structuresof the laptop and the desktop computer as well as an ability to accessthe back and perhaps even the interior of the desktop computer.

Data transfer between laptop computers and mini or mainframe computersis yet more difficult than the transfer described above. Operatingsystems, file structures, diskette drives and communications protocolsare less compatible for such computers than for transfers between laptopcomputers and desktop computers. The transfer thus often requiresadditional hardware and software, which is generally expensive due tothe wide variety of mini and mainframe computers and the correspondinglylower demand for a given transfer configuration.

Presently available remote data acquisition and storage devices,themselves, have still other problems in transferring data. Thesedevices generally do not have diskette drives or other removable storagemedia. They usually rely on the cable transfer techniques summarizedabove. Such devices also require installation of custom circuit boardswhich, if available, fit into the expansion slots of the destinationcomputer. Purchase and installation of these boards is expensive and maytax the power supply capacity of the destination computer.

An additional problem of laptop computers, unrelated to data transfer,arises from the unique size and layout of the keyboard of a laptopcomputer, with respect to a keyboard of a destination computer. Due tothe greater portability of the laptop, laptop users adapt to theunconventional layout and become proficient in its use. After data istransferred to the destination computer, however, these users arerequired to adapt to an unfamiliar keyboard. The user must thusconcentrate more on the keyboard, leaving less attention available fordevoting to the actual task. Greater typing effort, poorer quality workand increased keystroke error are common results of this deficiency.

In U.S. Pat. No. 4,710,869, Enokizono describes a keyboard connected toa master CPU (central processing unit) which is in turn connected to akeyboard emulation circuit and a slave CPU. The object of thisarrangement is to control multiple devices by providing data from asingle keyboard to a plurality of microprocessors. This design, however,does not suggest that the keyboard, master CPU and keyboard emulationcircuit be arranged as a remote device with a working memory, removedfrom a slave CPU and capable of inputting, editing or translating dataindependently of the slave CPU. Additionally, the disclosed devicetransfers keystrokes to the slave CPU on the basis of whether thekeystroke is on a table in the master CPU, not on the basis of the modeof the master CPU. Further, no capability is described for replacingkeystroke characters by other single characters or by strings ofcharacters, known as macros, or for providing translation in order topermit data transfer to various different application programs whileusing the specific control codes of the target application program.Finally, the system fails to allow a bypass connection of the output ofthe keyboard to the keyboard interface of the slave processor.

Similarly, a multi option keyboard is available from CherryMikroschalter GMBH under the designation “MULTI 2000”. This product isdescribed in an operating manual therefor as having an 8-bitmicrocontroller and as storing data which is changeable by the user.Specifically, a number of function keys may be coded with byte stringsselectable by the user. The keyboard includes a display for inputtedcharacters. The keyboard may communicate with its host PC (personalcomputer) using an RS 485/422 interface or via an RS 232 serialasynchronous interface at various baud rates, using ASCII characterswhich may be transformed into known IBM codes. However, the keyboard,which may also include an integrated bar code reader, a magnetic cardreader or a mouse, is incapable of entering and editing data, such asbarcode data, independently of its host PC. Moreover, the keyboardincludes neither a portable power supply nor software allowing the userto record, edit or translate character strings into formats compatiblewith various application programs operating on different computers.Thus, the keyboard (which derives its power from the host PC) cannot beused as a portable device for data entry remote from the host.

Other keyboard units are known in the art, as illustrated by U.S. Pat.Nos. 4,431,988; 4,387,296; 4,293,855; 4,179,748; 4,090,247; 4,016,542and 3,942,157. Of these, the U.S. Pat. Nos. 4,016,542 and 3,942,157disclosures provide a portable data gathering system including akeyboard, a display and a memory, together with an arrangement forconveying the data therefrom to a remote terminal or host processor.However, the device is apparently intended to be merely a temporary datastorage tool for communication with a host. There is no suggestion ofusing the same as a standard keyboard input for its host, or ofcommunicating with the host via the keyboard interface thereof.

In the U.S. Pat. No. 4,090,247 there is disclosed a similar portabledata entry device, including a memory for storing a plurality ofmultiple character records and a display. The device, which is selfpowered, includes a connector for direct connection between the deviceand a data system.

Still another portable data entry device is described in the U.S. Pat.No. 4,387,296, for use in meter reading. Thus, an input/output magnetictape is provided for mass data storage and an EAROM (electronicalterable read only memory) is included, for storing utility ratetables. Thus, the device may be used automatically to calculate acustomer's utility charges and to print customer bills for directdelivery to the customer.

The U.S. Pat. No. 4,179,748 disclosure teaches a programmer unit, forconnection to a machine keyboard, which is capable of storing (as aprogram) a sequence of key closures and of supplying to the machine andthrough the keyboard simulated key closures in the order in which thekey closures were generated and stored. However, the device is simplyintended to convert a non-programmable calculator into a programmablecalculator, rather than to provide a portable data storage and editingdevice.

The U.S. Pat. No. 4,293,855 disclosure identifies a portablecommunication device for providing communication by people havingrestricted physical and/or motor handicaps. Thus, a keyboard and displayare provided.

The U.S. Pat. No. 4,431,988 describes a further keyboard, including arandom access memory. The keyboard is configurable for entry to severalinterfaces and several process controllers.

None of the above described art, however, provides a device which may beused for both remote data entry and as a keyboard input device for ahost computer. None of the art teaches that such a device should beconnected to its host through the keyboard interface of the host, thusto permit the portable data entry device to function as the standardkeyboard for its host. Moreover, none of the art teaches that such aportable device may include editing capability and may provide outputdata simulating any of a plurality of application programs.

There is thus a need in the prior art for a device which may accept andedit input data, for use by a plurality of application programs, andwhich functions both as a remote entry device and as a standard keyboardfor its host processor.

SUMMARY OF THE INVENTION

Accordingly, it is a primary object of the present invention to provideimproved method and apparatus for data input, editing and/or transfer,overcoming the drawbacks of the prior art.

It is a more particular object of the invention to provide a devicewhich is capable of operating both as a remote, portable, data entrydevice for a processor and as a standard keyboard therefor.

It is another object of the invention to provide a convenient andeconomical method of data transfer from a remote data entry device to aseparate computer.

It is a more specific object of the invention to provide a method ofdata transfer which eliminates the need for the handling of diskettes orother removable storage media.

It is a further object of the invention to provide a method of datatransfer which requires no special communications port on thedestination computer.

Still another object of the invention is to provide a method of datatransfer which utilizes a standard port on the destination computerwhich is most easily recognized and understood by computer users andwhich generally requires a simple, identifiable and inexpensive cable.

Yet another object of the invention is to provide a method of datatransfer which delivers data directly, and in proper format, intoapplication software in a destination computer to eliminate the need forimport or parsing, and to provide the data to the proper filesubdirectory for the application program.

It is a further object of the invention to provide a method of datatransfer to mini or mainframe computers in a convenient and inexpensivemanner.

It is an additional object of the invention to provide a method of datatransfer from remote data input and storage devices in a convenient andinexpensive manner which loads the power supply of the destinationcomputer only to a level anticipated in its design.

It is an additional object of this invention to provide a remote devicecapable of outputting stored character strings known as macros toanother computer as well as to its own onboard files.

Still another object of the invention is to provide a method of using aremote data input or storage device, such as a laptop computer, as auser interface (keyboard) for another computer.

It is yet a further object of this invention to provide a user interfacefor a destination computer with the ability to record outputtedkeystrokes and restore damaged files on the destination computer(fault-tolerant operation).

In accordance with the foregoing objects, there is provided a portabledata input, storage and editing device. The inventive device includes aninput device for data entry; a storage for storing data entered by theinput device; and a transfer element for transferring data entered bythe input device to a host computer. Additionally, a processor isprovided for controlling the input device, the storage and the transferelement to operate in one of a plurality of modes. Included in theoperating modes are an active mode, in which the entered data is storedin the storage and the transfer element accesses data from the storagefor transfer to the host computer, and a bypass mode, in which thetransfer element transfers data directly from the input device to thehost computer.

Preferably, the host computer includes a keyboard interface and thetransfer element includes a connector for connecting the inventivedevice to the keyboard interface of the host computer. Thus, theinventive system operates for transferring the data entered by the inputdevice to the host computer via the keyboard interface.

In that regard, the input device may be a keyboard for inputting data tothe host computer, thereby providing for the host computer a detachablekeyboard for standard and remote operation. More specifically, instandard operation the processor controls the input device, storage andtransfer element to operate in the bypass mode, and the keyboard isattached to the host computer via the keyboard interface to inputsequences of characters to the host computer. On the other hand, in theremote operation the processor controls the input device, storage andtransfer element to operate in the active mode, and the keyboard isdetached from the host computer for inputting sequences of characters ofthe entered data to the storage, for subsequent transfer via thekeyboard interface to the host computer.

In accordance with one feature of the invention, there is included anonboard power supply for providing power to the input device, thestorage and the processor. Additionally, the transfer element includes apower transfer component for selectively transferring power from thehost computer to the input device, storage and processor when the deviceis connected to the host computer.

A significant aspect of the invention provides an editor for editingstrings of characters represented by the data entered by the inputdevice prior to transferring the data to the host computer. Similarly, atranslator may be provided for translating sequences of enteredcharacters from one format, usable by one application program running onthe host computer, to another format, usable by another applicationprogram running on the host computer. Further, a macro generator may beincluded. Such a macro generator replaces one sequence of inputkeystroke characters by a different sequence of keystroke characters.Typically, a short sequence, for example a one- or two-keystrokesequence, is replaced by a longer sequence, such as a specific textportion or a particular sequence of control characters.

In accordance with another aspect of the invention, there is provided abypass controller for causing the processor to establish the bypassmode. The bypass controller may include a program for selecting among aplurality of operating modes, including a keyboard emulation modewherein the input device emulates one of a plurality of keyboards, thusallowing input and data transfer to a plurality of different hostcomputer types. Alternatively, the bypass controller may include aplurality of switch contacts for routing data from the input device tothe transfer element via the storage, and for routing data from theinput device to the transfer element bypassing the storage.

Where an editor is included, the bypass controller is arranged forrouting data from the input device to the transfer element via thestorage in the active mode and for routing data from the input device tothe transfer element in the bypass mode, in order to bypass the storageand the editor in the bypass mode.

An output key may be provided, for initiating a data output transfer viathe transfer element to the host computer.

These and other objects, features and advantages of the presentinvention will become apparent to those skilled in the art from thefollowing description and drawings, wherein there is shown and describeda preferred embodiment of the invention, simply by way of illustrationand not of limitation of one of the best modes (and alternativeembodiments) suited to carry out the invention. As will be realized uponexamination of the specification and from practice of the same, thepresent invention is capable of still other, different, embodiments andits several details are capable of modifications in various obviousaspects, all without departing from the invention. Accordingly, thedrawings and the descriptions provided herein are to be regarded asillustrative in nature and not as restrictive of the invention.

BRIEF DESCRIPTION OF THE DRAWING

In accordance with the above described objects and features of theinvention, a preferred embodiment thereof is shown in the accompanyingdrawings, wherein:

FIG. 1 is a schematic circuit diagram of a device according to theinvention, capable of input, translation, editing or storage of data andof outputting such data to the keyboard interface of another computer.

FIG. 2 is a diagram of sample data bytes;

FIG. 3 illustrates a sample document for use in two word processors;

FIG. 4 shows the sample document as used in two word processors;

FIG. 5 is a schematic circuit diagram of a PIO used as an exemplaryinput switch device;

FIG. 6 is a flowchart of a program for control of data input and outputin the inventive device;

FIGS. 7A and 7B are schematic circuit diagrams of bypass switchingarrangement for the inventive device; and

FIG. 8 is a schematic circuit diagram utilizing a keyboard decoder chipas an output interface.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION

FIG. 1 is a schematic circuit diagram of a remote device 20 embodying aportable data storage and editing device according to the invention.Remote device 20 includes an input device 22, an input interface 26, aprocessor 28, a program memory 30, a working memory 32, an output switchdevice 34, a display 36, and an output interface 38. The outputinterface 38 is plug-connected to a keyboard interface 40 of adestination computer 42 via a cable.

Advantageously, the port for keyboard interface 40 is easily recognizedby a user and connection thereto may be had by use of an inexpensivecable. This port is often located at the front of the computer where itis very accessible. This port usually has its own interrupt to theprocessor of the destination computer. Utilization of this port forcommunication between devices and destination computer 42 eliminates theneed for installation of any specialized communication software orhardware on the destination computer. In accordance with the invention,there is provided a bypass arrangement illustrated by switch devices 24Aand 24B, which directly connects the input device 22 with the keyboardinterface 40 of the destination computer 42 when power is removed fromthe remote device 20. Power for the input device 22 in this event isprovided by the keyboard interface 40 of the destination computer 42.Preferably, the bypass arrangement is provided as a relay structure.However, the bypass arrangement further includes a software toggleconfiguration which provides several active modes of operation,including a first mode, wherein data is inputted to and edited by thecomponents of device 20; u second mode wherein data is transferred frommemory 32 to the destination computer 42, and a third mode providingemulation of any of a plurality of keyboards.

A menu is displayed on display 36 to inform the operator of the specifickeys to be operated to switch between the various modes, as well as toinitiate or terminate macro operation and to record incoming data frominput device 22. Numerous menu programs are known in the art and arethus omitted from the present description. A “bypass” mode may be one ofthe choices provided by the menu, to override various features of device20 and to provide direct data transfer from input device 22 todestination computer 42, thus effectively replacing (or supplementing) akeyboard of computer 42 with input device 22.

In any of the operating modes, the input device 22 is connected to theinput interface 26. Items 26-38 are connected to the data bus of theremote device 20. The output interface 38 is connected to the keyboardinterface 40.

OPERATION OF THE INVENTION

In a preferred embodiment, the remote device 20 is used as a keystrokerecording device, capable of inputting and storing keystroke codes froma standard keyboard. Upon closing of an output switch 65 of outputswitch device 34 (shown in FIG. 5), keystrokes are outputtedsequentially from the inventive device 20 to the keyboard interface 40of a destination computer 42. The remote device 20 has a battery (notshown) to provide an onboard power supply.

In the presently preferred embodiment, the input device 22 may be astandard keyboard, such as a Keytronic KB5151, distributed by KeyTronicCorporation of Spokane, Wash. As known in the art, this keyboard (orother input device) is connected to the input interface 26 by data andclock lines. Input device 22 derives its power from the remote device 20via a standard +5V DC and ground connection (not shown). Each keystrokeis encoded by well known encoding circuitry in the keyboard into atwo-byte code. The keyboard is configured to transmit to the inputinterface 26 the code, serially transmitted on one line, and referenceclock signal pulses, transmitted on another line. FIG. 2 shows examplesof clock pulses 50, data pulses 52 and data bytes 54 formed by the datapulses 52.

The input interface 26 receives the data, converts the data intoparallel format and sends an interrupt to the processor 28. Inputinterface 26 may be a standard IBM personal computer keyboard interfacecircuit, made by the International Business Machines Corporation ofArmonk, N.Y. This interface is compatible with the input device 22,described above, and the processor 28, described below.

Processor 28 reads the data from the interface 26 and writes the data toa first memory location in the working memory 32. The processor 28, inthis instance, may be an Intel 8086 microprocessor, available from IntelCorporation of Santa Clara, Calif. Processors of this type are wellknown and are used in the IBM XT computer. Processor 28 is controlled bya resident program stored in program memory 30. Program memory 30 ispreferably a ROM (read-only memory) while working memory 32 is a RAM(random-access memory), preferably of a type which is backed up bybatteries. Subsequent data bytes are sequentially stored by processor 28in other locations of memory 32.

Output switch device 34 acts to cause processor 28 to transfer inputinformation identifying closure of input keys (e.g., in a keyboardforming input device 22) to the data bus 41. The device provides aninput to processor 28 for initiating a keystroke output transfer. Outputswitch device 34 may include a PIO (parallel input/output device) suchas a Motorola 6820 PIA, available from Motorola Corporation of Phoenix,Ariz. FIG. 5 shows one configuration of an output switch device,including an output switch 65 connected to a PIO 67, configured toreceive closure data from the output switch 65 on one of its inputlines, shown illustratively as line D0. The PIO 67 of switch device 34is additionally configured to generate an output switch interrupt to theprocessor 28 on an output interrupt line 69, in response to the closuredata on line D0, and to write a byte to the data bus 41 when enabled bythe processor 28.

The data byte written by the PIO (which is read as “10000000” whenenabled by processor 28) indicates closure of output switch 65 to theresident program in memory 30. It should be noted that PIO 67 isdedicated to the single output switch 65 and that no other signals areinput or output on any other data line thereof. Upon receipt of the databyte and in response thereto, the resident program branches to an outputroutine which controls processor 28, in a well known manner, to functionin accordance with the output routine. In another configuration, outputswitch 65 is provided as a software enabled, software detected, key on akeyboard of input device 22. In a further configuration output switch 65is a menu selected output option. In accordance with the invention, theprocessor is controlled to operate as illustrated by the flow chart ofFIG. 6.

As shown therein, a simplified data entry program begins its operationby awaiting characters for storage or a signal to output storedcharacters. Upon starting the program at step 102, an input routing 103including steps 104, 106, 108, 110, 112, 114, 116 and 128 is executed bythe processor. Therein, the first memory location is accessed by theprocessor 28 at step 104. Upon receiving an input interrupt from theinput interface 26 at step 106, processor 28 reads the data from inputinterface 26 at step 108 and writes the data to memory at step 110. Atstep 112 the next memory location is accessed. If the location accessedat step 112 is determined at step 114 to be the last memory location, bydetection of an ENDMEM flag (set upon accessing the last location), theprogram controls the processor at step 116 to activate an annunciator towarn the operator. Specifically, a LED (light-emitting diode) may beactivated, a message may be displayed on a CRT, LCD, or other display,an oscillator may be operated to cause a speaker to generate a tone, avoice warning may be issued, the input may be halted so that no furtherinputs are accepted, or other known functions may be performed to alertthe operator to the end-of-available-memory condition and to the need toinitiate the output routine by operating an output switch.

At this time, the input routine is terminated and further input isdisabled, until the device 20 is connected to 65 is activated to outputthe contents of memory 32 to computer 42.

Thus, at step 118 the processor halts further operation and awaitsreceipt of the switch interrupt from the output switch device 34. Uponreceipt of the switch interrupt, the processor executes an outputroutine 119, including steps 120-126. Therein, the processor accessesthe contents of the first memory location at step 120, outputs the sameto output interface 38 at step 122, and accesses the next memorylocation at step 124. During execution of the output routine a separatedisplay (not shown) may be activated to alert the operator that a “dataoutput” is being implemented. At step 126 the processor tests for theENDMEM flag (or LASTMEM flag, described below) for the “next” locationaccessed at step 124. If the flag is not set, the processor outputs thecontents of this location at step 122 and repeats the sequence of steps122, 124 and 126 to output the entire contents of the memory tointerface 38, for output therefrom to the destination computer 42.

Once it is determined at step 126 that an ENDMEM flag was detected andthe last available memory location has been accessed, the device 20 isenabled to receive further input data. Specifically, the processorreturns to step 104 of the input routine, accessing the first memorylocation at step 104 and awaiting an interrupt from the input interface26 to identify operation of an input key on input device 22.

During execution of the input routine, when the ENDMEM flag is testedfor the next memory location at step 114, under typical operatingconditions additional memory remains and the test result is negative. Inthat event, at step 128 the processor awaits either an output switchclosure or an input interrupt. If an input interrupt is detected, theprogram loops back to step 108 in the same manner as if an inputinterrupt were detected in step 106, there to read the next data byteand to write the byte into memory. However, if it is determined at step128 that the output switch has been operated, the processor 28 exitsfrom the input routine and enters the output routine to begin outputtingthe data as follows.

Since step 128 is performed after a negative result of the test of step114, there is memory remaining. Accordingly, the processor sets a lastmemory flag (LASTMEM) at step 130, to indicate that the cell containsthe last input data which has been stored. It will be recognized thatsuch a flag is similar to an “ENDFILE” FLAG used in other environmentsso that, advantageously, various techniques of file manipulation andblock transfer designation may be used herein. Control then proceeds tothe output routine of steps 120-126, which accesses the first memorylocation and sequentially outputs the data as two-byte codes to theoutput interface 38 until the LASTMEM flag is reached, as previouslydescribed. Since the output routine in this instance was accessedthrough step 130, output termination will occur upon reaching theLASTMEM flag when the last available data byte has been outputted.

The output routine maintains the timing and sequence of the output codeswithin preset values corresponding to the capabilities of the keyboardinterface 40 of the destination computer 42.

Upon termination of the output routine at step 126, the program branchesback to the input routine, as previously described. In the simplifiedarrangement disclosed herein, the next incoming data would overwritepreviously existing data, the output of which was described above. Itwill be appreciated by those of ordinary skill in the art that anadditional annunciator may be provided, to alert the operator to such apossible overwrite condition, and to assure that all data has beentransferred to the destination computer prior to input of further data.Such an approach permits overwriting of the previous data only upon theoperator's awareness and control. Still additional control may beprovided to permit the user to specify and transfer only specific blocksor files of data in response to output switch closure. Further controlallows the user to erase or overwrite data without transfer by theoutput routine.

The output interface 38 may also be a PIO, as specified above for switchdevice 34, wherein the PIO is enabled by the processor 28 to read thedata byte. This device is additionally configured to transmit dataserially on one line, and to transmit reference clock signal pulses onanother line, to the keyboard interface 40 of the destination computer42.

The keyboard interface 40 may be a standard personal computer keyboardinterface circuit, as is available for the IBM XT computer. As will thusbe appreciated by those skilled in the art, keyboard interface 40 readsthe data byte as though it were arriving from a standard keyboard and,responsively thereto, generates an appropriate interrupt to thedestination computer 42 which, typically, may be an IBM XT computer.

The bypass switch devices 24A and 24B shown in the FIG. 1 embodiment ofremote device 20 are preferably formed using a single multi-contactrelay, the contacts of which are arranged as illustrated at 70, 72 and74 in FIGS. 7A and 7B. FIG. 7A shows an arrangement wherein the contacts70 and 72 are pulled closed and the bypass contacts 74 are opened. Block75 represents elements 26-38 of DEVICE 20 in FIG. 1. The controlwindings for the relay contacts are not shown. However, an arrangementof a control circuit including the relay windings will be readilyimplemented by those of ordinary skill in the art. For example, a singlecontrol winding may be connected in series with the power switch (notshown) of the remote device 20. A pair of normally-open contacts may beconnected in the manner shown for contacts 70 and 72, and a normallyclosed-contact may be connected as shown for contacts 74. It will beappreciated that either contacts 70 or 72 may be omitted withoutaffecting the flow of information described herein. However, bothcontacts are shown in order to provide complete isolation of elements28-38 from any transient voltage conditions when the elements arebypassed as shown in FIG. 7B.

The arrangement of FIG. 7A, wherein contacts 70 and 72 are closed andcontacts 74 are opened upon application of power to the device of theinvention, routes keystroke data through block 75 for operation ashereinabove described. This mode of operation is hereinafter referencedas the “active mode” of operation. When the device power is “off”,however, contacts 70 and 72 fall open and the bypass contact 74 closes,as shown in FIG. 7B. This arrangement provides a “bypass mode”, whichpermits keystrokes to bypass entirely the processing portion of device20 and to flow directly to the destination computer 42. In this mode ofoperation, the internal capability of the device is bypassed.

Advantageously, the power connections may also be routed through such arelay structure, through different contact pairs (not shown) which maybe connected precisely in the manner of contacts 70, 72 and 74. Thus, inthe bypass mode (power off) the keyboard is powered directly by thedestination computer 42.

Alternatively, the invention may include power sensing, switching andregulating circuitry on the power leads of its keyboard interface. Suchpower sensing, switching and regulating circuitry is well known in theelectronics industry. This circuitry would include a voltage-measuringchip to sense when voltage was being applied to the power leads of thedevice and a mechanical or solid-state relay to switch the device into amode where the applied voltage could be utilized by the device. As manypersonal computers limit the amount of power which can be supplied to akeyboard (about 1 watt), power regulation circuitry and chargingadapter/modified keyboard cable assembly may be provided as describedbelow. In addition to the standard clock, data, +5V and GND lines, thismodified keyboard cable has a provision for tapping into the +5V linewith a higher voltage or amperage charging adapter. The ground of thisadapter would be common with the host computer ground and, in the caseof a higher voltage adapter, a diode would be installed on the +5V linebetween the tap and the host computer. The purpose of the diode is toisolate the host computer from the higher voltage of the chargingadapter.

The above described complete configuration advantageously provides thedevice with additional power. The power sensing, switching andregulation circuitry hereinabove described can additionally beconfigured to sense the higher supply voltage and, in response thereto,enable device functions which consume greater power, such as screenbacklighting or battery charging.

Thus, the present device includes three modes of power operation. In thefirst mode, the device operates on internal power. The second modepermits the device to be attached to a host computer by the keyboardinterface and to derive power from the host. The third mode utilizes acharging adapter attached to the keyboard cable which allows increasedpower transfer. Thus, the design of the device considers the ability ofthe host computer to provide power and limits consumption to levelsanticipated in the design of the host computer.

The present invention thus includes a significant advantage. The remotedevice may be operated as a conventional keyboard of the destinationcomputer 42 in the bypass mode, or in a keyboard emulation routine ofthe active mode which simulates the bypass mode destination computer 42.In the bypass mode, keystrokes from the input device (keyboard) 22 arerouted directly to the destination computer via keyboard interface 40,using techniques known in the art. However, the keyboard may also bedetached from its destination computer and may thus be operated at aremote location, whether powered by a separate source of power or by onboard battery power, storing in memory 32 the keystrokes input by theoperator. Upon return to its ‘home-base’ or host computer, device 20 isagain connected to the keyboard interface 40 of destination computer 42for operation as a conventional keyboard and for transfer of theremotely stored keystrokes from memory 32 to computer 42.

In an alternate embodiment of the invention, the input device 22 may notbe compatible with the keyboard interface 40 of the destination computer42. Such a situation arises when using input devices such as keyboardswhich are incompatible with the destination computer 42, modems, opticalcharacter recognition systems, barcode scanning systems, optical ormagnetic data storage systems, computers, and industrial or scientificinstruments/transmitters and the like. A different input interface,compatible with digital data from such devices, is accordingly providedin the alternate embodiment, replacing the interface 26 of FIG. 1. Theprogram memory 30 of the alternate embodiment contains additionalprogram steps to read from, and provide handshaking signals to, a giveninput device using a given communication protocol. Data transfer formatsmay thus include keystroke data format, hexadecimal, binary codeddecimal, ANSI, ASCII, or custom formats.

The additional program resident in memory 30, including a translationtable, is required in the alternate embodiment for translating the inputdata from the input device into the applicable keystroke data format forkeyboard interface 40 of the destination computer 42. As will beappreciated by those of ordinary skill in the art, the data translationmay be performed on a character-by-character basis, during input oroutput. Data translation may also be performed on a batch basis betweeninput and output.

In yet another embodiment of the invention, the input device is akeyboard and output switch device 34 is a key on the keyboard whichinitiates output under program control. Moreover, a display 36 isprovided, such as an 80 character by 25 line backlit LCD by Optrex ofJapan. Although not shown in FIG. 1, it will be appreciated by thoseskilled in the art that a display driver chip is included for drivingdisplay 36. Further, a resident text editing program is included inprogram memory 30. Such programs are known in the art and are notfurther described herein. Of course, instead of being resident inprogram memory such a program may be externally loadable into workingmemory 32. The inclusion of a text editing program allows data frommemory to be called up to the screen, edited, and returned to memory forsubsequent output to the keyboard interface 40.

Since such programs are known in the art, a flow chart of the same isnot provided herein. However, the inclusion of such a program in aportable keyboard (or other input device) for editing information to beinput to a destination computer as keystrokes, via the keyboardinterface, provides an advantage of the present invention which has notbeen disclosed in the prior art. In that regard, the input device may bea ‘laptop’ computer, which further extends the utility of the invention.

Other capabilities of the inventive arrangement include storage ofcharacter strings, known as macros, and transfer of the strings to thedestination computer by actuation of single keys, such as the functionkeys, or combinations of multiple keys, such as “Alt-A”. Although thespecific macro generating program is not described, such programs arewell known.

An additional capability of a device which acts as both an on-line andan off-line data entry device is realized when these two characteristicsare combined. The device while in “keyboard” mode (acting as an inputdevice) can concurrently be set in a “record” mode. In this combinedmode, the keystrokes which flow to the host computer are simultaneouslystored as keystrokes in the remote device. In the event of a computerfailure the damaged file may be restored by “playback” of the recordedkeystrokes to the host computer.

For example, a user may recall an existing word processor file from thehost computer to the screen for editing. Before the user begins editing(usually the cursor will be flashing in the upper left hand corner ofthe computer screen), the user toggles the “recorder” to the onposition. The user then makes changes to the file. When the changes arecomplete, the user toggles the “recorder” off. Instead of saving thefile, the user escapes from the file without saving changes.Alternatively, a power failure may cause RAM memory on the host computerto be erased before the user has an opportunity to save his or her work.Fault tolerant operation is achieved by recalling the unedited wordprocessor file on the host computer to the screen again. The user thentoggles the device to “playback” the recorded keystrokes. This method ofdata restoration requires no translation of data formats. Additionalutility is obtained by permitting multiple record files for differentusers and for recalling record files to the screen so that specificsequences of keystrokes may be examined or tagged for “playback”. Thisform of fault tolerance is memory intensive and it will be apparent tothose skilled in the art that a record file can be constructed to loopback to its beginning after a specified time, or after keying apredetermined number of keystrokes, to overwrite itself in a continuousfashion as with many aircraft flight data recorders (such recordershaving no controlling “playback” ability).

Still a further capability of the device is obtained by supplying itwith programming necessary to selectably emulate the output of severaldifferent keyboards. It will be appreciated that many types of keyboardinterfaces exist on many types of computers. Different interfaces oftenrequire different codes, different code transmission timing and oftenutilize different methods for acknowledging reception of a code. It willbe appreciated by those skilled in the art that a selectable outputtable can be arranged. When a host H1 is selected, codes C1, timing T1and protocol P1 are automatically selected. Selection of a differenthost would reference a different output emulation. Thus, such aprogrammable keyboard can embody a variety of host computers with themany advantageous features described herein.

It will also be appreciated that many types of keyboard interface, suchas those on an IBM PC, can be controlled by operating programs on thehost computer to transfer data files serially to and from the keyboard.Moreover, certain background programs may be loaded into the workingmemory of many personal computers which may be caused to execute fromwithin other applications by a unique keystroke combination. Such hostpersonal computer programs are well known as memory-resident programs.Thus it is apparent that the inventive device is capable of applyingthese unique keystroke combinations to the host PC, resulting ininitiation of the memory-resident program. Such a program is capable oftagging and transferring complete files to and from the device. Thiscombination gives the inventive device a simple method of data uploadand download without the use of cabling or media. Utilization of amemory-resident data transfer program on the host computer eliminatesthe need to alter menus and allows transfer from within otherapplications at any time.

A menu-driven communications program is also included in program memory30, or alternatively may be loaded into working memory 32, to allow theuser to configure the remote device 20 to accept data from a variety ofinput devices 22 by selecting the mode of data input. It will beappreciated that a typical communication program also permits the userto select serial or parallel modes and simplex, half-duplex orfull-duplex configurations, by use of the keyboard and display.Additionally, by using such a program, the user can select the inputtransfer speed, or baud rate, as well as the proper settings of startbits, stop bits, data bits, and parity bits required to conduct thetransfer. Such programs also permit the user to select the input datacode type such as ASCII, extended ASCII, ANSI, binary coded decimal,EBCDIC, or hexadecimal. The ensuing description will clarify methods forenhancing typical communications software to import, store, translateand output keystroke data to any of a plurality of applicationsoperating on plural computers.

Rather than configure each element individually, the user may select aspecific input device 22, as well as a specific application program andcommunications protocol, from a menu of preconfigured input devices 22.Although not explicitly shown herein, such menu programs are well knownand widely commercially available, permitting the use of a singlekeystroke to select an application program, for example. It thus wouldbe a simple matter for one of ordinary skill, guided by the presentdescription, to provide such a menu wherein particular input devices,configured in a specified manner, are identified for selection by theuser, in addition to selection of the desired application program.

Another feature of the present invention is the ability of the disclosedstructure to import data inputted from one source, for use by -oneapplication program, for use by a second application program.“Importing” is a known process by which codes stored in a specifiedformat of a known application program are translated into a differentformat, as used by another application program. In the embodiment of theinvention which incorporates a resident text processor, incoming codesfrom input device 22 are imported into the format of the text editingprogram resident in the remote device 20.

The following illustrates the import process.

A sample document shown in FIG. 3 is to be stored in two word processorsWP1 and WP2. WP2 may represent the text processor resident in the memoryof the remote device 20. FIG. 4 shows that in each of these wordprocessors, printable characters 56 and function codes 58, 60, 62 arestored as two-byte codes 64. Additionally, this Figure shows that eachcharacter code 56 and function code 58, 60 and 62 is stored as adifferent two-byte code in each of the two word processors. Comparisonof the stored data strings 66 and 68 shows that the function codes 58 60and 62 in each word processor are not only stored differently, but, withthe exception of [CR] (carriage return), they behave differently. Forexample, the [CEN] (center) function 58 of a stored data string 66functions in WP1 to indicate the following command: “the followingcharacters are to be centered, until another [CEN] command isencountered”. The [CEN] function 58 of stored data string 68 referencesan object length stored in the next two characters (four bytes) which,in the example of FIG. 4, is the number 13. Thus, the [CEN] function 58of WP2 functions to indicate the following command: “the 13 charactersfollowing the object are to be centered”.

The format of a file stored in accordance with the rules of wordprocessor WP1 cannot be “read” directly by processor WP2. WP2 thusincludes an import function to translate files from various other wordprocessors, such as WP1. In performing this function, a look-up table isused for translation of characters and an algorithm may be required totranslate function codes.

For example, translation of a character such as “A” is done by searchinga substitution table, or cross-reference index, for the WP1 coderepresenting “A”. This index cross-references the code 00000010,00000010 in WP1 to the code 10000010, 10000010 in WP2. Upon finding theWP1 code for the character A the WP2 cross-reference code is substitutedtherefor in a straight-forward manner. Thus, each of the character codesgenerated under WP1 is translated to codes which would be generatedunder WP2.

Translation of the [CEN] command illustrates the use of an algorithm forconversion of the function codes from WP1 to WP2. The algorithm fortranslating [CEN] counts the characters between the [CEN] commands ofWP1, translates the first [CEN] command (by using the cross-referenceindex), inserts the result of the count, translates each individualcharacter between the two [CEN]commands (by using the cross-referenceindex) and strips the last [CEN] command. Similar algorithms are usedfor translation of other function codes, where necessary. It will beappreciated that, for some commands, illustrated by the carriage returncommand [CR], function code translation merely involves reference to thecross-reference index and straightforward substitution.

Once all characters and all functions have been translated, the file canbe edited by WP2. The above process is applicable to all importationprocesses. However, the foregoing example is provided to illustrateimportation to a popular DOS-based word processor, which is used as aresident text editor of the remote device 20.

An additional translation is required to “export” the edited file to thekeyboard interface of the destination computer. The resident program ofthe inventive remote device 20 thus provides a menu to allow the user toselect one or both of the destination computer and the applicationprogram, such as Word Star on the IBM PC. Transfer from the text storedin memory 32 to the destination computer is accomplished in thefollowing manner, without the complex requirements associated with datatransfer using RS232 ports.

The user sets the remote device 20 to the bypass mode (or to thekeyboard emulation routine in the active mode) and activates theapplication program (e.g., Word Star) on the destination computer 42. Aswill be recalled, this may be done by opening contacts 70 and 72 andclosing contacts 74 as shown in FIG. 7B, thus using the remote device 20as a standard keyboard for the destination computer. The user then setsthe remote device 20 to a transfer routine in the active mode, in orderto transfer the selected file from memory 32 of the remote device to thedestination computer.

With the destination computer and application selected, the inventivedevice is prepared to translate and transfer data. Each character of theselected file is outputted as the keystroke code required to generatethat character in the application. Each function is outputted as thekeystroke code (or codes) required to perform that function on thetarget application. Each function in the file is translated by algorithminto the series of keystrokes which would generate the same result onthe destination application.

Where the application in the destination computer is Word Star, the[CEN]13 command would transfer the keystroke codes corresponding to thenext 13 characters, followed by the codes issued when the Control key isdepressed along with the keys “0” then “C”. This is the keystrokecombination required by Word Star to center a line of text which hasalready been typed. If the destination application were Word Perfect,the [CEN]13 command would transfer to the destination computer the codesissued when the Shift key is depressed together with the “F6” key, whichis the Word Perfect code for the text centering function. Thereafter,the 13 keystroke codes representing the text would be transferred,followed by the concluding center command, which is again thecombination of the Shift key and the “F6” key.

Additional output software is incorporated in this embodiment of theinvention for adjusting the rate of data output via the keyboardinterface. The user may preset the output rate by accessing a menu andinputting the desired data rate. Alternatively, the user may preset thedata rate by selecting the model of the destination computer 42 andapplication program from a menu, which corresponds to selecting apreconfigured keystroke data input rate compatible with both theapplication program and the destination computer. As will beappreciated, such a program may be made responsive to the “+” and “−”keys (or to other keys) of the attached keyboard during data output.These keys are thus respectively usable to speed up and slow down theoutput rate.

In other embodiments, on-line data translations are provided for akeyboard interface 40 of a different destination computer 42 and forother software application packages. One such on-line process changesthe functions of certain keys in one software package to maintain the“feel” of another package. Another on-line process interchanges thefunctions of all keys to correspond to another layout such as a Dvorakstyle keyboard. In still another process, the user can avoid typingrepetitive strings of keystrokes by storing the strings as character andfunction code strings known as macros. Transmission of stored macros isimplemented by depression of single keys, such as function keys, orchorded keys, such as Alt-A. Word macros are also supported by such anarrangement.

In the preferred embodiment, the remote device 20 is portable,incorporating one or more batteries as a source of power. Thesebatteries are preferably capable of powering the circuitry of the remotedevice 20 for a period of eight hours.

As will be appreciated by those skilled in the art, a number ofmodifications may be made in the above described structure. For example,the input device 22 may be a device with an analog output. Devices suchas sensors, meters scanners and the like typically provide analogoutputs. In such an arrangement, an input interface capable ofconverting analog data to digital data is used in place of the digitalinterface 26 shown in FIG. 1. This device can be a commonanalog-to-digital converter.

In still another modification, the input interface 26 shown in FIG. 1may be replaced by other known interface circuitry, as will beappreciated by those skilled in the art. Three illustrations follow. Inone arrangement, the input interface 26 is simply provided as anaddressable location on the data bus. The resident program in memory 30controls the processor 28 to poll the addressable location by enablingand reading data therefrom. Resident program steps are also contained tohandshake the addressable location by enabling and writing data thereto.

In another variation, the input interface 26 may be a USART (universalsynchronous/asynchronous receiver/transmitter), such as a model 8251USART available from Intel. As known in the art, this device may beprogrammed to transmit and receive serial data from a keyboard, forexample, in either synchronous or asynchronous modes. When a characterhas been received, the USART stores the character in a data bus bufferand sends a character ready signal to processor 28.

In yet a third example, input interface 26 may be a PIO, of the typehereinabove described. However, the PIO of this example is configured toaccept data and clock signals on two data lines configured as inputsthereto.

The program memory 30 of this embodiment contains resident program stepsto control the processor 28 to respond to interrupts from either theUSART or the PIO by enabling the device and reading data therefrom.Resident program steps are also contained to handshake via the USART orPIO by enabling and writing data thereto.

It will be appreciated that, depending on the protocol used for inputdata transfer, the remote device 20 must return to the input device 22signals representing well known communication control characters tocontrol data flow and to verify data accuracy. These characters include,for example, DTR (data terminal ready), XON/XOFF (transfer flowcontrol), ACK (acknowledge) and NAK (negative acknowledge). The inputinterfaces 26 described above are all capable of performing astransmitters to provide this required hand-shaking under direction ofapplicable communications software. This capability is well-known in theart and accordingly no further description is necessary.

In yet another modification, the output interface 38 may be provided asa keyboard decoder chip from a device, such as a keyboard, which iscompatible with the keyboard interface 40 of the destination computer42. As will be understood from the following, such decoder chips can becontrolled by the processor 28 so that the inputs thereof appear to beaccepting keyswitch closure information. The decoder chip then transmitsthe appropriate code and clock signals in serial form.

FIG. 8 shows an example of a decoder chip with eight column inputs andfour row scanning outputs. In typical operation, the rows are scanned bysequential application of a low bit from the decoder to the respectiverows while the remaining rows are held high. When a key is depressed,the low bit is read by a column input to the decoder. By identifying therow input which was low when the low code was detected for a givencolumn the matrix position of the depressed key is determined and akeystroke code is outputted. FIG. 8 shows that depressions ofkeyswitches can be simulated by the processor 28 if four latches areadded. One latch is used for each row to be scanned. To simulate theoutput of a given keyswitch, the latch corresponding to the output rowof the keyswitch is sent a data byte by the processor 28 on the data bus(not shown). The byte provides a low level on one of the eight inputlines, simulating the column output from a particular keyswitch. Allother positions of all other latches are held high. The latches aresequentially enabled by the row scanning outputs. When the rowcorresponding to the simulated key outputs its scan code, the latch isenabled to output the low bit to a specific input line of the decoder.Thus, keyswitch closures are simulated to the decoder chip and thedecoder chip outputs the appropriate keystroke codes on its clock anddata lines.

In another embodiment, the output interface 38 may be an addressablelocation, a USART or a PIO, as hereinabove described for the embodimentsof input interfaces 26.

In still another modification, the output interface 38 may be similar tothe output interface of the KeyTronic KB5152V voice-actuated keyboard.This keyboard is capable of outputting keystroke macros to the keyboardinterface 40 of a destination computer 42, when prompted by voice.

In a further variation, the remote device 20 may comprise a laptopcomputer and interface elements. The laptop computer may be similar to atype commercially available as a model T1200, made by Kabushiki KaishaToshiba Corporation of Kawasaki, Japan. This laptop computer includes akeyboard, display, disk memory, battery power and communications ports.Resident programs operating on the laptop comprise a disk operatingsystem, such as MS-DOS 3.1 by Microsoft Corporation of Redmond, Wash.,and text and numerical editing programs, such as Framework II, byAshton-Tate of Culver City, Calif. Working and program memory are bothon floppy disk. The process of translating characters of a known fileinto keystrokes which, when outputted to the keyboard interface of adestination computer, result in the creation of a similar file has beendescribed hereinabove with respect to use of a cross-reference file anda number of algorithms. A resident program is provided, which, canselect data from a Framework II file and output the data as keystrokecodes into a variety of other applications operating on a variety ofdestination computers. Thus, the only hardware required to implementthis advantageous feature of the invention is a cable, which attaches toa communications port on the laptop and to the keyboard interface of thedestination computer.

The above described device accordingly provides a novel communicationability, permitting a user to enter data at a remote location, to editthe text, and conveniently to transfer the data to a particularapplication program, such as Word Star for instance, operating on an IBMPC. A moment later, the user can transfer the same text to a differentapplication program, such as MacWrite, operating on an Apple Macintosh.The user can then transfer the same text to a mainframe computer. Noneof these cases requires any special hardware or software to be installedon the destination computer. Further, the user is not required topossess special knowledge of the destination computer. A long felt needis thus satisfied by the inventive device.

The foregoing description of the preferred embodiment of the inventionhas been presented for purposes of illustration and description and isnot intended to be exhaustive or to limit the invention to the preciseforms disclosed, since many modifications and variations are possible inlight of the above teaching. The embodiment was chosen and described inorder best to explain the principles of the invention and its practicalapplication, thereby to enable others skilled in the art best to utilizethe invention in various embodiments and with various modifications asare suited to the particular use contemplated therefor. It is intendedthat the scope of the invention be defined by the claims appendedhereto, when interpreted in accordance with full breadth to which theyare legally and equitably entitled.

I claim:
 1. A portable data input, storage and editing devicecomprising: input means for data entry; storage means for storage ofdata entered by said input means; transfer means for transferring dataentered by said input means to the keyboard interface of a separate hostcomputer; , said transfer means comprising: connecting means forconnecting said portable device to the keyboard interface of the hostcomputer and for transferring said data entered by said input means tothe host computer via the keyboard interface of the host computer; andemulator means for modifying said data prior to being transferred fromsaid portable device for receipt by the keyboard interface of the hostcomputer; processor means for controlling said input means, said storagemeans and said transfer means to operate in one of a plurality of modes,and portable power storage means for operating at least said inputmeans, said storage means and said processor means when said portabledevice is disconnected from the host computer thereby enabling remoteinput, storage and editing of said data entered by said input means,wherein the host computer comprises a keyboard interface, and saidtransfer means comprises connecting means for connecting said device tosaid keyboard interface of the host computer and for transferring saiddata entered by said input means to the host computer via said keyboardinterface .
 2. A device as recited in claim 1, further comprisinginitiating means for initiating a program operating on the hostcomputer.
 3. A device as recited in claim 1, wherein the host computercomprises a power interface for selectively transferring power from thehost computer to said input means, storage means and processor meanswhen the device is connected to the host computer.
 4. A device asrecited in claim 1, further comprising macro generating means forreplacing a first sequence of a first number of keystroke charactersrepresented by said data entered by said input means by a secondsequence of a second number of keystroke characters.
 5. A device asrecited in claim 1, further comprising output key means for initiating adata output transfer via said transfer means to the host computer.
 6. Adevice as recited in claim 1, wherein said processor means forcontrolling said input means, said storage means and said transfer meansto operate in one of a plurality of modes is programmed for controllingsaid input means, said storage means and said transfer means to operatein: an active mode wherein said data entered by said input means isstored in said storage means and said transfer means accesses data fromsaid storage means for transfer to the host computer, and a bypass modewherein said transfer means transfers data directly from said inputmeans to the host computer.
 7. A device as recited in claim 3, whereinsaid program is operable for controlling transfer of file data betweensaid device and the host computer.
 8. A device as recited in claim 7wherein said program is RAM-resident.
 9. A device as recited in claim 6wherein said input means comprises a keyboard for inputting data to thehost computer, thereby providing for the host computer a detachablekeyboard for standard and remote operation, wherein in standardoperation said processor means controls said input means, storage meansand transfer means to operate in said bypass mode and said keyboard isattached to the host computer via said keyboard interface to inputsequences of characters to the host computer, while in said remoteoperation said processor means controls said input means, storage meansand transfer means to operate in said active mode and said keyboard isdetached from the host computer for inputting sequences of characters tosaid storage means for subsequent transfer via said keyboard interfaceto the host computer.
 10. A device as recited in claim 6, furthercomprising a bypass means for causing said processor means to establishsaid bypass mode.
 11. A device as recited in claim 9 wherein saidtransfer means further comprises emulation means for emulating akeyboard of any of a plurality of computers, thereby allowing saiddevice to be used as the keyboard of any of said computers.
 12. A deviceas recited in claim 10, wherein said bypass means comprise a program forselecting among a plurality of operating modes, including a keyboardemulation mode wherein said input means emulates one of a plurality ofpredetermined keyboards of the host computer.
 13. A device as recited inclaim 10 wherein said bypass means comprises a plurality of switches forrouting data from said input means to said transfer means via saidstorage means and for routing data from said input means to saidtransfer means bypassing said storage means.
 14. A device as recited inclaim 10 further comprising editing means for editing strings ofcharacters represented by said data entered by said input means prior totransfer said data to the host computer, said bypass means comprisesmeans for routing data from said input means to said transfer means viasaid storage means in said active mode and for routing data from saidinput means to said transfer means in said bypass mode, bypassing saidstorage means, and for bypassing said editing means in said bypass mode.15. A portable data input, storage and editing device comprising: inputmeans for data entry; storage means for storage of data entered by saidinput means; transfer means for transferring data entered by said inputmeans to the keyboard interface of a separate host computer, saidtransfer means comprising: connecting means for connecting said portabledevice to the keyboard interface of the host computer and fortransferring said data entered by said input means to the host computervia the keyboard interface of the host computer, and emulator means formodifying said data prior to being transferred from said portable devicefor receipt by the keyboard interface of the host computer; andprocessor means for controlling said input means, said storage means andsaid transfer means to operate in one of a plurality of modes including:an active mode wherein said data entered by said input means is storedin said storage means and said transfer means accesses data from saidstorage means for transfer to the host computer, and a bypass modewherein said transfer means transfers data directly from said inputmeans to the host computer, further comprising editing means for editingstrings of characters represented by said data entered by said inputmeans prior to transfer said data to the host computer, wherein the hostcomputer comprises a keyboard interface, and said transfer meanscomprises connecting means for connecting said device to said keyboardinterface of the host computer and for transferring said data entered bysaid input means to the host computer via said keyboard interface . 16.A portable data input, storage and editing device comprising: inputmeans for data entry; storage means for storage of data entered by saidinput means; transfer means for transferring data entered by said inputmeans to the keyboard interface of a separate host computer, saidtransfer means comprising: connecting means for connecting said portabledevice to the keyboard interface of the host computer and fortransferring said data entered by said input means to the host computervia the keyboard interface of the host computer, and emulator means formodifying said data prior to being transferred from said portable devicefor receipt by the keyboard interface of the host computer; andprocessor means for controlling said input means, said storage means andsaid transfer means to operate in one of a plurality of modes including:an active mode wherein said data entered by said input means is storedin said storage means and said transfer means accesses data from saidstorage means for transfer to the host computer, and a bypass modewherein said transfer means transfers data directly from said inputmeans to the host computer, further comprising translating means fortranslating sequences of characters represented by said data entered bysaid input means from an input format for the device to a format usableby an application program running on the host computer, wherein the hostcomputer comprises a keyboard interface, and said transfer meanscomprises connecting means for connecting said device to the keyboardinterface of the host computer and for transferring said data entered bysaid input means to the host computer via said keyboard interface . 17.A device is recited in claim 16 wherein said translating means operatesto translate said sequence of characters from said input format to anyof a plurality of formats used by multiple applications running on saidhost computer.
 18. A device is recited in claim 16 wherein saidtranslating means operates to translate said sequences of charactersform one format usable by one application program running on the hostcomputer to another format usable by another application program runningon the host computer.
 19. A portable data input, storage and editingdevice comprising: input means for data entry; storage means for storageof data entered by said input means; transfer means for transferringdata entered by said input means to the keyboard interface of a separatehost computer connecting means for connecting said portable device tothe keyboard interface of the host computer and for transferring saiddata entered by said input means to the host computer via said keyboardinterface of the host computer, and an emulator means for modifying saiddata prior to being transferred from said portable device for receipt bythe keyboard interface of the host computer; and processor means forcontrolling said input means, said storage means and said transfer meansto operate in one of a plurality of modes including: an active modewherein said entered data is stored in said storage means and saidtransfer means accesses data from said storage means for transfer to thehost computer, and a bypass mode wherein said transfer means transfersdata directly from said input means to the host computer, the hostcomputer including a keyboard interface and said transfer meansincluding connecting means for connecting said device to said keyboardinterface of the host computer and for transferring said data entered bysaid input means to the host computer via said keyboard interface; saidinput means including a keyboard for inputting data to for the hostcomputer, thereby providing for the host computer a detachable keyboardfor standard and remote operation, wherein in standard operation saidprocessor means controls said input means, storage means and transfermeans to operate in said bypass mode and said keyboard is attached tothe host computer via said the keyboard interface of the host computerto input sequences of characters to the host computer by the emulatormeans, while in said remote operation said processor means controls saidinput means, storage means and transfer means to operate in said activemode and said keyboard is detached from the host computer for inputtingsequences of characters to said storage means for subsequent transfervia said the keyboard interface to the host computer; and furthercomprising editing means for editing strings of characters representedby said data entered by said input means prior to transfer of said datato the host computer.
 20. A device as recited in claim 19, furthercomprising macro generating means for replacing a first sequence of afirst number of keystroke characters represented by said data entered bysaid input means by a second sequence of a second number of keystrokecharacters.
 21. A device as recited in claim 19, further comprising abypass means for causing said processor means to establish said bypassmode, said bypass means comprises means for routing data from said inputmeans to said transfer means via said storage means in said active modeand for routing data from said input means to said transfer means insaid bypass mode, bypassing said storage means, and for bypassing saidediting means in said bypass mode.
 22. A portable data input, storageand editing device comprising: input means for data entry; storage meansfor storage of data entered by said input means; transfer means fortransferring data entered by said input means to the keyboard interfaceof a separate host computer, said transfer means comprising connectingmeans for connecting said portable device to the keyboard interface ofthe host computer and for transferring said data entered by said inputmeans to the host computer via the keyboard interface of the hostcomputer, and emulator means for modifying said data prior to beingtransferred from said portable device for receipt by the keyboardinterface of the host computer; processor means for controlling saidinput means, said storage means and said transfer means, therebyenabling remote input, storage and editing of said data entered by saidinput means, and record and playback means for recording the dataentered by said input means and for playing back the recorded data,thereby to provide a fault-tolerant operating capability to the portabledevice, wherein the host computer has a keyboard interface, and saidtransfer means comprises connecting means for connecting said device tosaid keyboard interface of the host computer and for transferring saiddata entered by said input means to the host computer via said keyboardinterface .
 23. A device as recited in claim 22, wherein said transfermeans comprises said record and playback means.
 24. A device as recitedin claim 22 wherein said input means comprises a keyboard.
 25. Aportable data input, storage and editing device comprising: first inputmeans for data entry; storage means for storage of data entered by saidfirst input means; transfer means for transferring data entered by saidfirst input means to the keyboard interface of a separate host computer,said transfer means comprising: connecting means for connecting saidportable device to the keyboard interface of the host computer and fortransferring said data entered by said first input means and emulating asecond input means different from said first input means from saidportable device to the host computer prior to being transferred fromsaid portable device to the keyboard interface of the host computer;processor means for controlling said first input means, said storagemeans and said transfer means to operate in one of a plurality of modes,wherein said processor means is programmed for controlling said transfermeans to transfer data emulating second input means different from saidfirst input means for receipt by a keyboard interface of the hostcomputer, and portable power storage means for operating at least saidfirst input means, said storage means and said processor means when saidportable device is disconnected from the host computer thereby enablingremote input, storage and editing of said data entered by said firstinput means.
 26. A device as recited in claim 25, wherein the hostcomputer comprises a power interface for selectively transferring powerfrom the host computer to said input means, storage means and processormeans when the portable device is connected to the host computer.
 27. Adevice as recited in claim 25, further comprising output key means forinitiating a data output transfer via said transfer means to the hostcomputer.
 28. A device as recited in claim 25, wherein said processormeans is programmed for controlling said first input means, said storagemeans and said transfer means to operate in: an active mode wherein saiddata entered by said first input means is stored in said storage meansand said transfer means accesses data from said storage means fortransfer to the host computer, and a bypass mode wherein said transfermeans transfers data directly from said first input means to thekeyboard interface of the host computer.
 29. A device as recited inclaim 28, further comprising a bypass means for causing said processormeans to establish said bypass mode.
 30. A device as recited in claim 29wherein said bypass means comprises a plurality of switches for routingdata from said first input means to said transfer means via said storagemeans and for routing data from said input means to said transfer meansbypassing said storage means.
 31. A device as recited in claim 25further comprising editing means for editing strings of charactersrepresented by said data entered by said first input means prior totransfer of said data to the host computer.
 32. A portable data input,storage and editing device comprising: input means for data entry;storage means for storage of data entered by said input means; transfermeans for transferring data entered by said input means to the keyboardinterface of a separate host computer, said transfer means including:emulating means for modifying said data prior to being transferred fromsaid portable device to the keyboard interface of the host computer;processor means for controlling said input means, said storage means andsaid transfer means to operate in one of a plurality of modes, portablepower storage means for operating at least said input means, saidstorage means and said processor means when said portable device isdisconnected from the host computer thereby enabling remote input,storage and editing of said data entered by said input means, and ameans for housing said input means, storage means, transfer means,processor means and portable power storage means, and connecting meansfor connecting said portable device to the keyboard interface of thehost computer and for transferring said data entered by said input meansfrom said portable device to be received by the keyboard interface ofthe host computer.
 33. A device as recited in claim 32, wherein the hostcomputer comprises a power interface for selectively transferring powerfrom the host computer to said input means, storage means and processormeans when the portable device is connected to the host computer.
 34. Adevice as recited in claim 32, further comprising output key means forinitiating a data output transfer via said transfer means to the hostcomputer.
 35. A device as recited in claim 32, wherein said processormeans for controlling said input means, said storage means and saidtransfer means to operate in one of a plurality of modes is programmedfor controlling said input means, said storage means and said transfermeans to operate in: an active mode wherein said data entered by saidinput means is stored in said storage means and said transfer meansaccesses data from said storage means for transfer to the host computer,and a bypass mode wherein said transfer means transfers data directlyfrom said input means to the keyboard interface of the host computer.36. A device as recited in claim 35, further comprising a bypass meansfor causing said processor means to establish said bypass mode.
 37. Adevice as recited in claim 36 wherein said bypass means comprises aplurality of switches for routing data from said input means to saidtransfer means via said storage means and for routing data from saidinput means to said transfer means bypassing said storage means.
 38. Adevice as recited in claim 32 further comprising editing means forediting strings of characters represented by said data entered by saidinput means prior to transfer of said data to the host computer.
 39. Adevice as recited in claim 32 wherein the transfer means furthercomprising an emulating means for modifying said data that istransferred from said portable device for receipt by the keyboardinterface of the host computer.